home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C!T ROM 3
/
ct-rom iiib.zip
/
ct-rom iiib
/
WINDOWS
/
DIVERSEN
/
WINE02BX
/
ILISP
< prev
next >
Wrap
Text File
|
1993-03-28
|
70KB
|
1,769 lines
Info file ilisp.info, produced by Makeinfo, -*- Text -*- from input
file ilisp.texi.
This file documents ILISP.
This is edition 0.9 of the ILISP manual for ILISP Version 4.11.
Copyright (C) 1991 Todd Kaufmann
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
Permission is granted to copy and distribute modified versions of
this manual under the conditions for verbatim copying, provided that
the entire resulting derived work is distributed under the terms of
a permission notice identical to this one.
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for
modified versions, except that this permission notice may be stated
in a translation approved by the Foundation.
File: ilisp.info, Node: Top, Next: Distribution, Prev: (dir), Up: (dir)
This Info file documents ILISP, a GNU Emacs interface for a lisp
running in a buffer.
* Menu:
* Distribution:: How to get the latest ILISP distribution.
* Acknowledgements:: Acknowledgements
* Introduction:: An introduction to ILISP and its features.
* Installation:: How to install ILISP.
* Starting up:: How to run a Lisp process using ILISP.
* Buffers of ILISP:: Buffers used by ILISP, and their commands.
* ILISP Commands::
* Customization:: Description of ILISP variables and hooks.
* Dialects:: How ILISP knows how to communicate with Lisp,
and how to define new dialects.
Indices:
* Concept index:: General concepts.
* Key index:: ILISP key sequences.
* Command index:: Commands by name.
* Variable index:: Variables and hooks that influence ILISP's
behavior.
* Function index:: Internal Emacs Lisp functions.
File: ilisp.info, Node: Distribution, Next: Acknowledgements, Prev: Top, Up: Top
How to get the latest ILISP distribution.
*****************************************
ILISP is "free"; this means that everyone is free to use it and
free to redistribute it on a free basis. ILISP is not in the public
domain; it is copyrighted and there are restrictions on its
distribution, but these restrictions are designed to permit
everything
that a good cooperating citizen would want to do. What is not
allowed is to try to prevent others from further sharing any version
of ILISP that they might get from you. The precise conditions
appears following this section.
The easiest way to get a copy of ILISP is from someone else who
has it. You need not ask for permission to do so, or tell any one
else; just copy it.
If you do start using the package, please send mail to
`ccm@cs.cmu.edu' so that I can keep a mailing list of users. Any
comments or code are also welcome.
* Menu:
* FTP directions:: FTP directions
File: ilisp.info, Node: FTP directions, Prev: Distribution, Up: Distribution
FTP directions
==============
You can anonymously ftp the source files from CMU:
* Ftp to katmandu.mt.cs.cmu.edu (128.2.250.68)
* login as anonymous, with user@host as password
* `cd pub/ilisp'
Get the files you need:
* `get ilisp.tar.Z' or
* `mget README HISTORY *.el *.lisp *.texi *.info *.ps *.dvi *.lcd'
* If Franz gives permission for the Franz online CL manual: `get
fi.tar.Z'
Unpack and install:
1. `uncompress ilisp.tar.Z; tar xf ilisp.tar'
2. `uncompress fi.tar.Z; tar xf fi.tar'
3. *Note Installation::.
File: ilisp.info, Node: Acknowledgements, Next: Introduction, Prev: Distribution, Up: Top
Acknowledgements
****************
ILISP is based on comint mode and derived from a number of
different interfaces including Symbolics, cmulisp, and Thinking
Machines. There are many people that have taken the time to report
bugs, make suggestions and even better send code to fix bugs or
implement new features. Special thanks to Todd Kaufmann for the
texinfo file, work on bridge, epoch-pop and for really exercising
everything. Thanks to Neil Smithline, David Braunegg, Fred White,
Jim Healy, Larry Stead, Hans Chalupsky, Michael Ernst, Frank Ritter,
Tom Emerson, David Duff, Dan Pierson, Michael Kashket, Jamie
Zawinski, Bjorn Victor and Brian Dennis for bug reports, suggestions
and code. Please send bug reports, fixes and extensions to
`ccm@cs.cmu.edu' so I can merge them into the master source.
--Chris McConnell 18-Mar-91
File: ilisp.info, Node: Introduction, Next: Installation, Prev: Acknowledgements, Up: Top
Introduction
************
ILISP is an interface from GNU Emacs to an inferior LISP. It has the
following features:
* Support for multiple LISP dialects including Lucid, Allegro and
CMU on multiple machines even at the same time.
* Dynamically sized pop-up windows that can be buried and scrolled
from any window.
* Packages are properly handled including the distinction between
exported and internal symbols.
* Synchronous, asynchronous or batch eval and compile of files,
regions, definitions and sexps with optional switching and
automatic calling.
* Arglist, documentation, describe, inspect and macroexpand.
* Completion of filename components and LISP symbols including
partial matches.
* Find source both with and without help from the inferior LISP,
including CLOS methods, multiple definitions and multiple
files. Also works for automatically generated functions like
defstruct.
* Edit the callers of a function with and without help from the
inferior LISP.
* Trace/untrace a function.
* `M-q' ("Fill-paragraph") works properly on paragraphs in
comments, strings and code.
* Find unbalanced parentheses.
* Super brackets.
* Handles editing, entering and indenting full LISP expressions.
* Next, previous, and similar history mechanism compatible with
comint.
* Handles LISP errors.
* Result histories are maintained in the inferior LISP.
* Does not create spurious symbols and handles case issues.
* Online manuals for ILISP and Common LISP.
File: ilisp.info, Node: Installation, Next: Starting up, Prev: Introduction, Up: Top
How to install ILISP
********************
Installation of ILISP and some initialization of your computing
environment are described in this chapter. Please read the
following sections carefully before getting started with ILISP.
If ILISP has already been installed at your location, you can
probably skip ahead to "Autoloading."
* Menu:
* Files of ILISP::
* Autoloading:: How to define autoload entries.
File: ilisp.info, Node: Files of ILISP, Next: Autoloading, Prev: Installation, Up: Installation
Files of ILISP
==============
The files you need to use ilisp are:
`ilisp.emacs'
File with sample `.emacs' code for ILISP.
`symlink.el'
Expand pathnames resolving links.
`completer.el'
Partial completion code.
`completion.el'
Completion package from TMC.
`popper.el'
Shrink-wrapped temporary windows.
`epoch-pop.el'
Popper for epoch.
`bridge.el'
Process to process communication.
`comint.el'
The basic comint abstraction.
`comint-ipc.el'
Extensions for sending commands and getting results.
`ilisp-ext.el'
Standalone lisp-mode extensions.
`ilisp-src.el'
ILISP source code module.
`ilisp-bat.el'
ILISP batch code module.
`ilisp.el'
Actual ILISP definitions.
`*.lisp'
ILISP support code. Each dialect will have one of these files.
`*.lcd'
Package descriptors for the Lisp Code Directory.
`fi/*'
Online Franz Common LISP manual.
`ilisp.texi'
Texinfo file for ILISP.
All of the `.el' files in the ilisp directory and the `fi'
subdirectory should be byte-compiled by typing `C-u M-x
byte-recompile-directory'. Before compiling, make sure that
load-path has the location of the files on it. If you plan to use
epoch, you must make sure that the epoch EMACS code is loaded before
compiling `epoch-pop'. If you do not plan to use epoch, you should
rename the `epoch-pop.el' file to `epoch-pop' so that it will not
get compiled. The first time a dialect is started, the interface
files will complain about not being compiled, just hit `i' to ignore
the
message. Once a lisp dialect is started up, you should execute the
command `ilisp-compile-inits' which will compile the `*.lisp' files
and write them to the same directory as the ilisp files.
The binary files should have a unique extension for each different
combination of architecture and LISP dialect. You will need to
change `ilisp-init-binary-extension' and `ilisp-init-binary-command'
to get additional extensions. The binary for each different
architecture should be different. If you want to build the
interface files into a LISP world, you will also need to set
`ilisp-load-inits' to `nil' in the same place that you change
`ilisp-program' to load the LISP world.
There is an `ilisp-site-hook' for initializing site specific stuff
like program locations when ILISP is first loaded. You may want to
define appropriate autoloads in your system Emacs start up file.
Example site init:
;;; CMU site
(setq ilisp-site-hook
'(lambda ()
(setq ilisp-motd "CMU ILISP V%s")
(setq expand-symlinks-rfs-exists t)
(setq allegro-program "/usr/misc/.allegro/bin/cl")
(setq lucid-program "/usr/misc/.lucid/bin/lisp")))
File: ilisp.info, Node: Autoloading, Prev: Files of ILISP, Up: Installation
How to define autoload entries
==============================
These are sample forms for your `.emacs' file. They can be found
in the file `ilisp.emacs' in the `ilisp-directory'.
;;;
;;; This file shows examples of some of the things you might want to
;;; do to install or customize ILISP. You may not want to include all
;;; of them in your .emacs. For example, the default key binding
;;; prefix for ILISP is C-z and this file changes the default prefix to
;;; C-c. For more information on things that can be changed, see the
;;; file ilisp.el.
;;;
;;; If ilisp lives in some non-standard directory, you must tell emacs
;;; where to get it. This may or may not be necessary.
(setq load-path (cons (expand-file-name "~jones/emacs/ilisp/") load-path))
;;; If you always want partial minibuffer completion
(require 'completer)
;;; If want always want TMC completion
(load "completion")
(initialize-completions)
;;; If you want to redefine popper keys
(setq popper-load-hook
'(lambda ()
(define-key global-map "\C-c1" 'popper-bury-output)
(define-key global-map "\C-cv" 'popper-scroll-output)
(define-key global-map "\C-cg" 'popper-grow-output)))
;;; If you always want popper windows
(require 'popper)
;;; Autoload based on your LISP. You only really need the one you use.
;;; If called with a prefix, you will be prompted for a buffer and program.
(autoload 'run-ilisp "ilisp" "Select a new inferior LISP." t)
(autoload 'clisp "ilisp" "Inferior generic Common LISP." t)
(autoload 'allegro "ilisp" "Inferior Allegro Common LISP." t)
(autoload 'lucid "ilisp" "Inferior Lucid Common LISP." t)
(autoload 'cmulisp "ilisp" "Inferior CMU Common LISP." t)
(autoload 'kcl "ilisp" "Inferior Kyoto Common LISP." t)
(autoload 'akcl "ilisp" "Inferior Austin Kyoto Common LISP." t)
(autoload 'ibcl "ilisp" "Ibuki Common LISP." t)
(autoload 'scheme "ilisp" "Inferior generic Scheme." t)
(autoload 'oaklisp "ilisp" "Inferior Oaklisp Scheme." t)
;;; Define where LISP programs are found. (This may already be done
;;; at your site.)
(setq allegro-program "/usr/misc/.allegro/bin/cl")
(setq lucid-program "/usr/misc/.lucid/bin/lisp")
(setq cmulisp-program "/usr/misc/.cmucl/bin/lisp")
;;; This makes reading a lisp file load in ilisp.
(set-default 'auto-mode-alist
(append '(("\\.lisp$" . lisp-mode)) auto-mode-alist))
(setq lisp-mode-hook '(lambda () (require 'ilisp)))
;;; Sample load hook
(setq ilisp-load-hook
'(lambda ()
;; Change default key prefix to C-c
(setq ilisp-prefix "\C-c")
;; Sample initialization hook. Set the inferior LISP directory to
;; the directory of the buffer that spawned it on the first prompt.
(add-hook 'ilisp-init-hook
(function (lambda ()
(default-directory-lisp ilisp-last-buffer))))))
;;; Setup to always show output in the Inferior LISP buffer.
;(setq lisp-no-popper t
; comint-always-scroll t)
File: ilisp.info, Node: Starting up, Next: Buffers of ILISP, Prev: Installation, Up: Top
How to run a Lisp process using ILISP
*************************************
To start a Lisp use `M-x run-ilisp', or a specific dialect like
`M-x allegro'. If called with a prefix you will be prompted for a
buffer name and a program to run. The default buffer name is the
name of the dialect. The default program for a dialect will be the
value of DIALECT-program or the value of ilisp-program inherited
from a less specific dialect. If there are multiple LISP's, use the
dialect name or `M-x select-ilisp' (`C-z S') to select the current
ILISP buffer.
These are the currently supported dialects. The dialects are
listed so that the indentation correponds to the hierarchical
relationship between dialects.
clisp
allegro
lucid
kcl
akcl
ibcl
cmulisp
scheme
oaklisp
If anyone figures out support for other dialects I would be happy
to include it in future releases. *Note Dialects::.
Entry into ILISP mode runs the hooks on `comint-mode-hook' and
`ilisp-mode-hook' and then DIALECT-hooks specific to LISP dialects
in the nesting order above.
File: ilisp.info, Node: Buffers of ILISP, Next: ILISP Commands, Prev: Starting up, Up: Top
Buffers used by ILISP, and their commands
*****************************************
`*DIALECT*'
The Lisp listener buffer. Forms can be entered in this buffer
in, and they will be sent to lisp when you hit return if the
form is complete. This buffer is in ilisp-mode, which is built
on top of comint-mode, and all comint commands such as history
mechanism and job control are available.
`LISP-MODE-BUFFERS'
A buffer is assumed to contain Lisp source code if its major
mode is in the list `lisp-source-modes'. If it's loaded into a
buffer that is in one of these major modes, it's considered a
lisp source file by `find-file-lisp', `load-file-lisp' and
`compile-file-lisp'. Used by these commands to determine
defaults.
``*Completions*''
Used for listing completions of symbols or files by the
completion commands. *Note Completion::.
`*Aborted Commands*'
*Note Interrupts::.
`*Errors*'
`*Output*'
`*Error Output*'
used to pop-up results and errors from the inferior LISP.
`*ilisp-send*'
Buffer containing the last form sent to the inferior LISP.
`*Edit-Definitions*'
`*All-Callers*'
*Note Source code commands::.
`*Last-Changes*'
`*Changed-Definitions*'
*Note Batch commands::.
* Menu:
* Popper buffers:: temporary buffers used for display.
* Switching buffers:: Switching buffers
File: ilisp.info, Node: Popper buffers, Next: Switching buffers, Prev: Buffers of ILISP, Up: Buffers of ILISP
Popper buffers
==============
ILISP uses a dynamically sized pop-up window that can be buried
and scrolled from any window for displaying output. By default the
smallest window will have just one line. If you like bigger
windows, set `window-min-height' to the number of lines desired plus
one.
The variable `popper-pop-buffers' has a list of temporary buffer
names that will be displayed in the pop-up window. By default only
`*Typeout-window*' and `*Completions*' will be displayed in the
pop-up window (remember to include the leading space in a buffer
name
if it has it). If you want all temporary windows to use the pop-up
window, set `popper-pop-buffers' to `t'.
The variable `popper-buffers-to-skip' has a list of the buffer
names `C-x o' (`popper-other-window') skips or `t' to skip all
popper buffers. If `popper-other-window' is called with a `C-u'
prefix,
the popper window will be selected.
`C-z 1 (popper-bury-output)'
buries the output window.
`C-z v (popper-scroll-output)'
scrolls the output window if it is already showing, otherwise it
pops it up. If it is called with a negative prefix, it will
scroll backwards.
`C-z G (popper-grow-output)'
will grow the output window if showing by the prefix number of
lines. Otherwise, it will pop the window up.
If you are running `epoch', the popper window will be in a
separate X window that is not automatically grown or shrunk. The
variable `popper-screen-properties' can be used to set window
properties for that window.
An alternative to popper windows is to always have the inferior
LISP buffer visible and have all output go there. Setting
`lisp-no-popper' to `t' will cause all output to go to the inferior
LISP buffer. Setting `comint-always-scroll' to `t' will cause
process
output to always be visible. If a command gets an error, you will
be left in the break loop.
File: ilisp.info, Node: Switching buffers, Prev: Popper buffers, Up: Buffers of ILISP
Switching buffers
=================
Commands to make switching between buffers easier.
`C-z b (switch-to-lisp)'
will pop to the current ILISP buffer or if already in an ILISP
buffer, it will return to the buffer that last switched to an
ILISP buffer. With a prefix, it will also go to the end of the
buffer. If you do not want it to pop, set `pop-up-windows' to
nil.
`M-C-l (previous-buffer-lisp)'
will switch to the last visited buffer in the current window or
the Nth previous buffer with a prefix.
File: ilisp.info, Node: ILISP Commands, Next: Customization, Prev: Buffers of ILISP, Up: Top
ILISP Commands
**************
Most of these key bindings work in both Lisp Mode and ILISP mode.
There are a few additional and-go bindings found in Lisp Mode.
* Menu:
* Eval and compile functions::
* Documentation functions::
* Macroexpansion::
* Tracing functions::
* Package Commands::
* Source code commands:: Working on several files
* Batch commands:: Grouping changes for eval/compile
* Files and directories::
* Keyboard modes:: Interactive and raw keyboard modes
* Interrupts:: Interrupts, aborts, and errors
* Command history::
* Completion::
* Miscellany:: Indentation, parenthesis balancing,
and comment commands.
File: ilisp.info, Node: Eval and compile functions, Next: Documentation functions, Prev: ILISP Commands, Up: ILISP Commands
Eval and compile functions
==========================
In LISP, the major unit of interest is a form, which is anything
between two matching parentheses. Some of the commands here also
refer to "defun," which is a list that starts at the left margin in
a LISP buffer, or after a prompt in the ILISP buffer. These
commands refer to the "defun" that contains the point.
"A call" refers to a reference to a function call for a function
or macro, or a reference to a variable. Commands which "insert a
call" in the ILISP buffer will bring up the last command which
matches it or else will insert a template for a call.
When an eval is done of a single form matching
`ilisp-defvar-regexp' the corresponding symbol will be unbound and
the value assigned again.
When you send a form to LISP, the status light will reflect the
progress of the command. In a lisp mode buffer the light will
reflect the status of the currently selected inferior LISP unless
`lisp-show-status' is nil. If you want to find out what command is
currently running, use the command `C-z s' (status-lisp). If you
call it with a prefix, the pending commands will be displayed as well.
Note that in this table as elsewhere, the key C-z (ilisp-prefix)
is used as a prefix character for ILISP commands, though this may be
changed. For a full list of key-bindings, use `M-x describe-mode'
or `M-x describe-bindings' while in an ILISP-mode buffer.
The eval/compile commands verify that their expressions are
balanced and then send the form to the inferior LISP. If called
with a positive prefix, the result of the operation will be inserted
into the buffer after the form that was just sent.
For commands which operate on a region, the result of the compile
or eval is the last form in the region.
The `and-go' versions will perform the operation and then
immediately switch to the ILISP buffer where you will see the
results of executing your form. If `eval-defun-and-go-lisp' or
`compile-defun-and-go-lisp' is called with a prefix, a call for the
form will be inserted as well.
`C-z'
The prefix-key for most ILISP commands. This can be changed by
setting the variable `ilisp-prefix'.
`RET (return-ilisp)'
In ILISP-mode buffer, sends the current form to lisp if
complete, otherwise creates a new line and indents. If you
edit old input, the input will be copied to the end of the
buffer first and then sent.
`C-] (close-and-send-lisp)'
Closes the current sexp, indents it, and then sends it to the
current inferior LISP.
`LFD (newline-and-indent-lisp)'
Insert a new line and then indent to the appropriate level. If
called at the end of the inferior LISP buffer and an sexp, the
sexp will be sent to the inferior LISP without a trailing
newline.
`C-z e (eval-defun-lisp)'
`M-C-x (eval-defun-lisp)'
`C-z C-e (eval-defun-and-go-lisp)'
Send the defun to lisp.
`C-z r (eval-region-lisp)'
`C-z C-r (eval-region-and-go-lisp)'
`C-z n (eval-next-sexp-lisp)'
`C-z C-n (eval-next-sexp-and-go-lisp)'
`C-z c (compile-defun-lisp)'
`C-z C-c (compile-defun-lisp-and-go)'
When `compile-defun-lisp' is called in an inferior LISP buffer
with no current form, the last form typed to the top-level will
be compiled.
`C-z w (compile-region-lisp)'
`C-z C-w (compile-region-and-go-lisp)'
If any of the forms contain an interactive command, then the
command will never return. To get out of this state, you need to
use `abort-commands-lisp' (`C-z g'). If `lisp-wait-p' is t, then
EMACS will display the result of the command in the minibuffer or a
pop-up window. If `lisp-wait-p' is `nil', (the default) the send is
done asynchronously and the results will be brought up only if there
is more than one line or there is an error. In this case, you will
be given the option of ignoring the error, keeping it in another
buffer or keeping it and aborting all pending sends. If there is
not a command already running in the inferior LISP, you can preserve
the break loop. If called with a negative prefix, the sense of
`lisp-wait-p' will be inverted for the next command.
File: ilisp.info, Node: Documentation functions, Next: Macroexpansion, Prev: Eval and compile functions, Up: ILISP Commands
Documentation functions
=======================
`describe-lisp', `inspect-lisp', `arglist-lisp', and
`documentation-lisp' switch whether they prompt for a response or
use a default when called with a negative prefix. If they are
prompting, there is completion through the inferior LISP by using
`TAB' or `M-TAB'. When entering an expression in the minibuffer,
all of the normal ilisp commands like `arglist-lisp' also work.
Commands that work on a function will use the nearest previous
function symbol. This is either a symbol after a `#'' or the symbol
at the start of the current list.
`C-z a (arglist-lisp)'
Return the arglist of the current function. With a numeric
prefix, the leading paren will be removed and the arglist will
be inserted into the buffer.
`C-z d (documentation-lisp)'
Infers whether function or variable documentation is desired.
With a negative prefix, you can specify the type of
documentation as well. With a positive prefix the
documentation of the current function call is inserted into the
buffer.
`C-z i (describe-lisp)'
Describe the previous sexp (it is evaluated). If there is no
previous sexp and if called from inside an ILISP buffer, the
previous result will be described.
`C-z i (describe-lisp)'
Describe the previous sexp (it is evaluated). If there is no
previous sexp and if called from inside an ILISP buffer, the
previous result will be described.
`C-z I (inspect-lisp)'
Switch to the current inferor LISP and inspect the previous sexp
(it is evaluated). If there is no previous sexp and if called
from inside an ILISP buffer, the previous result will be
inspected.
`C-z D (fi:clman)'
`C-z A (fi:clman-apropos)'
If the Franz online Common LISP manual is available, get
information on a specific symbol. `fi:clman-apropos' will get
information apropos a specific string. Some of the
documentation is specific to the allegro dialect, but most of
it is for standard Common LISP.
File: ilisp.info, Node: Macroexpansion, Next: Tracing functions, Prev: Documentation functions, Up: ILISP Commands
Macroexpansion
==============
`C-z M (macroexpand-lisp)'
`C-z m (macroexpand-1-lisp)'
These commands apply to the next sexp. If called with a
positive numeric prefix, the result of the macroexpansion will
be inserted into the buffer. With a negative prefix, prompts
for expression to expand.
File: ilisp.info, Node: Tracing functions, Next: Package Commands, Prev: Macroexpansion, Up: ILISP Commands
Tracing functions
=================
`C-z t (trace-defun-lisp)'
traces the current defun. When called with a numeric prefix
the function will be untraced. When called with negative
prefix, prompts for function to be traced.
File: ilisp.info, Node: Package Commands, Next: Source code commands, Prev: Tracing functions, Up: ILISP Commands
Package Commands
================
The first time an inferior LISP mode command is executed in a Lisp
Mode buffer, the package will be determined by using the regular
expression `ilisp-package-regexp' to find a package sexp and then
passing that sexp to the inferior LISP through
`ilisp-package-command'. For the `clisp' dialect, this will find
the first `(in-package PACKAGE)' form in the file. A buffer's
package will be displayed in the mode line. If a buffer has no
specification, forms will be evaluated in the current inferior LISP
package.
`C-z p (package-lisp)'
Show the current package of the inferior LISP.
`C-z P (set-package-lisp)'
Set the inferior LISP package to the current buffer's package or
with a prefix to a manually entered package.
`M-x set-buffer-package-lisp'
Set the buffer's package from the buffer. If it is called with
a prefix, the package can be set manually.
File: ilisp.info, Node: Source code commands, Next: Batch commands, Prev: Package Commands, Up: ILISP Commands
Source Code Commands
====================
The following commands all deal with finding things in source code.
The first time that one of these commands is used, there may be some
delay while the source module is loaded. When searching files, the
first applicable rule is used:
* try the inferior LISP,
* try a tags file if defined,
* try all buffers in one of `lisp-source-modes' or all files
defined using `lisp-directory'.
`M-x lisp-directory' defines a set of files to be searched by the
source code commands. It prompts for a directory and sets the
source
files to be those in the directory that match entries in
`auto-mode-alist' for modes in `lisp-source-modes'. With a positive
prefix, the files are appended. With a negative prefix, all current
buffers that are in one of `lisp-source-modes' will be searched.
This is also what happens by default. Using this command stops
using a tags file.
`edit-definitions-lisp', `who-calls-lisp', and `edit-callers-lisp'
will switch whether they prompt for a response or use a default when
called with a negative prefix. If they are prompting, there is
completion through the inferior LISP by using `TAB' or `M-TAB'.
When entering an expression in the minibuffer, all of the normal
ILISP commands like `arglist-lisp' also work.
`edit-definitions-lisp' (`M-.') will find a particular type of
definition for a symbol. It tries to use the rules described above.
The files to be searched are listed in the buffer
`*Edit-Definitions*'. If `lisp-edit-files' is nil, no search will
be done if not found through the inferior LISP. The variable
`ilisp-locator' contains a function that when given the name and
type should be able to find the appropriate definition in the file.
There is often a flag to cause your LISP to record source files that
you
will need to set in the initialization file for your LISP. The
variable is `*record-source-files*' in both allegro and lucid. Once
a definition has been found, `next-definition-lisp' (`M-,') will
find the next definition (or the previous definition with a prefix).
`edit-callers-lisp' (`C-z ^') will generate a list of all of the
callers of a function in the current inferior LISP and edit the
first caller using `edit-definitions-lisp'. Each successive call to
`next-caller-lisp' (`M-`') will edit the next caller (or the
previous caller with a prefix). The list is stored in the buffer
`*All-Callers*'. You can also look at the callers by doing `M-x
who-calls-lisp'.
`search-lisp' (`M-?') will search the current tags files,
`lisp-directory' files or buffers in one of `lisp-source-modes' for
a
string or a regular expression when called with a prefix.
`next-definition-lisp' (`M-,') will find the next definition (or the
previous definition with a prefix).
`replace-lisp' (`M-"') will replace a string (or a regexp with a
prefix) in the current tags files, `lisp-directory' files or buffers
in one of `lisp-source-modes'.
Here is a summary of the above commands (behavior when given
prefix argument is given in parentheses):
`M-x lisp-directory'
Define a set of files to be used by the source code commands.
`M-. (edit-definitions-lisp)'
Find definition of a symbol.
`M-, (next-definition-lisp)'
Find next (previous) definition.
`C-z ^ (edit-callers-lisp)'
Find all callers of a function, and edit the first.
`M-` (next-caller-lisp)'
Edit next (previous) caller of function set by
`edit-callers-lisp'.
`M-x who-calls-lisp'
List all the callers of a function.
`M-? (search-lisp)'
Search for string (regular expression) in current tags,
`lisp-directory' files or buffers. Use `next-definition-lisp'
to find next occurence.
`M-" (replace-lisp)'
Replace a string (regular expression) in files.
File: ilisp.info, Node: Batch commands, Next: Files and directories, Prev: Source code commands, Up: ILISP Commands
Batch commands
==============
The following commands all deal with making a number of changes
all at once. The first time one of these commands is used, there
may be some delay as the module is loaded. The eval/compile
versions of these commands are always executed asynchronously.
`mark-change-lisp' (`C-z SPC') marks the current defun as being
changed. A prefix causes it to be unmarked. `clear-changes-lisp'
(`C-z * 0') will clear all of the changes. `list-changes-lisp'
(`C-z * l') will show the forms currently marked.
`eval-changes-lisp' (`C-z * e'), or `compile-changes-lisp' (`C-z *
c') will evaluate or compile these changes as appropriate. If
called with a positive prefix, the changes will be kept. If there
is an error, the process will stop and show the error and all
remaining changes will remain in the list. All of the results will
be kept in the buffer `*Last-Changes*'.
Summary:
`C-z SPC (mark-change-lisp)'
Mark (unmark) current defun as changed.
`C-z * e (eval-changes-lisp)'
`C-z * c (compile-changes-lisp)'
Call with a positive prefix to keep changes.
`C-z * 0 (clear-changes-lisp)'
`C-z * l (list-changes-lisp)'
File: ilisp.info, Node: Files and directories, Next: Keyboard modes, Prev: Batch commands, Up: ILISP Commands
Files and directories
=====================
File commands in lisp-source-mode buffers keep track of the last
used directory and file. If the point is on a string, that will be
the default if the file exists. If the buffer is one of
`lisp-source-modes', the buffer file will be the default.
Otherwise, the last file used in a lisp-source-mode will be used.
`C-x C-f (find-file-lisp)'
will find a file. If it is in a string, that will be used as
the default if it matches an existing file. Symbolic links are
expanded so that different references to the same file will end
up with the same buffer.
`C-z l (load-file-lisp)'
will load a file into the inferior LISP. You will be given the
opportunity to save the buffer if it has changed and to compile
the file if the compiled version is older than the current
version.
`C-z k (compile-file-lisp)'
will compile a file in the current inferior LISP.
`C-z ! (default-directory-lisp)'
sets the default inferior LISP directory to the directory of the
current buffer. If called in an inferior LISP buffer, it sets
the Emacs `default-directory' to the LISP default directory.
File: ilisp.info, Node: Keyboard modes, Next: Interrupts, Prev: Files and directories, Up: ILISP Commands
Switching between interactive and raw keyboard modes
====================================================
There are two keyboard modes for interacting with the inferior
LISP, \"interactive\" and \"raw\". Normally you are in interactive
mode where keys are interpreted as commands to EMACS and nothing is
sent
to the inferior LISP unless a specific command does so. In raw
mode, all characters are passed directly to the inferior LISP
without any interpretation as EMACS commands. Keys will not be
echoed unless ilisp-raw-echo is T.
Raw mode can be turned on interactively by the command
`raw-keys-ilisp' (`C-z #') and will continue until you type C-g.
Raw mode can also be turned on/off by inferior LISP functions if the
command `io-bridge-ilisp' (M-x io-bridge-ilisp) has been executed in
the inferior LISP either interactively or on a hook. To turn on raw
mode,
a function should print ^[1^] and to turn it off should print ^[0^].
An example in Common LISP would be:
`(progn (format t "") (print (read-char)) (format t ""))'
File: ilisp.info, Node: Interrupts, Next: Command history, Prev: Keyboard modes, Up: ILISP Commands
Interrupts, aborts, and errors
==============================
If you want to abort the last command you can use `C-g'.
If you want to abort all commands, you should use the command
`abort-commands-lisp' (`C-z g'). Commands that are aborted will be
put in the buffer `*Aborted Commands*' so that you can see what was
aborted. If you want to abort the currently running top-level
command, use `interrupt-subjob-ilisp' (`C-c C-c'). As a last
resort, `M-x panic-lisp' will reset the ILISP state without
affecting the inferior LISP so that you can see what is happening.
`delete-char-or-pop-ilisp' (`C-d') will delete prefix characters
unless you are at the end of an ILISP buffer in which case it will
pop one level in the break loop.
`reset-ilisp', (`C-z z') will reset the current inferior LISP's
top-level so that it will no longer be in a break loop.
Summary:
`C-c C-c (interrupt-subjob-ilisp)'
Send a keyboard interrupt signal to lisp.
`C-z g (abort-commands-lisp)'
Abort all running or unsent commands.
`M-x panic-lisp (panic-lisp)'
Reset the ILISP process state.
`C-z z (reset-ilisp)'
Reset lisp to top-level.
`C-d (delete-char-or-pop-ilisp)'
If at end of buffer, pop a level in break loop.
If `lisp-wait-p' is `nil' (the default), all sends are done
asynchronously and the results will be brought up only if there is
more
than one line or there is an error. In case, you will be given the
option of ignoring the error, keeping it in another buffer or
keeping it and aborting all pending sends. If there is not a
command already running in the inferior LISP, you can preserve the
break loop. If called with a negative prefix, the sense of
`lisp-wait-p' will be inverted for the next command.
File: ilisp.info, Node: Command history, Next: Completion, Prev: Interrupts, Up: ILISP Commands
Command history
===============
ILISP mode is built on top of `comint-mode', the general
command-interpreter-in-a-buffer mode. As such, it inherits many
commands
and
features from this, including a command history mechanism.
Each ILISP buffer has a command history associated with it.
Commands that do not match `ilisp-filter-regexp' and that are longer
than `ilisp-filter-length' and that do not match the immediately
prior command will be added to this history.
`M-n (comint-next-input)'
`M-p (comint-previous-input)'
Cycle through the input history.
`M-s (comint-previous-similar-input)'
Cycle through input that has the string typed so far as a prefix.
`M-N (comint-psearch-input)'
Search forwards for prompt.
`M-P (comint-msearch-input)'
Search backwards for prompt.
`C-c R (comint-msearch-input-matching)'
Search backwards for occurrence of prompt followed by string
which is prompted for (*not* a regular expression).
See `comint-mode' documentation for more information on `comint'
commands.
File: ilisp.info, Node: Completion, Next: Miscellany, Prev: Command history, Up: ILISP Commands
Completion
==========
Commands to reduce number of keystrokes.
`M-TAB (complete-lisp)'
will try to complete the previous symbol in the current inferior
LISP. Partial completion is supported unless
`ilisp-prefix-match' is set to `t'. (If you set it to `t',
inferior LISP completions will be faster.) With partial
completion, `p--n' would complete to `position-if-not' in
Common LISP. If the symbol follows a left paren or a `#'',
only symbols with function cells will be considered. If the
symbol starts with a `*' or you call with a positive prefix all
possible completions will be considered. Only external symbols
are considered if there is a package qualification with only
one colon. The first time you try to complete a string the
longest common substring will be inserted and the cursor will
be left on the point of ambiguity. If you try to complete
again, you can see the possible completions. If you are in a
string, then filename completion will be done instead. And if
you try to complete a filename twice, you will see a list of
possible completions. Filename components are completed
individually, so `/u/mi/' could expand to `/usr/misc/'. If you
complete with a negative prefix, the most recent completion
(symbol or filename) will be undone.
`M-RET (complete)'
will complete the current symbol to the most recently seen
symbol in Emacs that matches what you have typed so far.
Executing it repeatedly will cycle through potential matches.
This is from the TMC completion package and there may be some
delay as it is initially loaded.
File: ilisp.info, Node: Miscellany, Prev: Completion, Up: ILISP Commands
Miscellany
==========
Indentation, parenthesis balancing, and comment commands.
``TAB' (indent-line-ilisp)'
indents for LISP. With prefix, shifts rest of expression
rigidly with the current line.
`M-C-q (indent-sexp-ilisp)'
will indent each line in the next sexp.
`M-q (reindent-lisp)'
will reindent the current paragraph if in a comment or string.
Otherwise it will close the containing defun and reindent it.
`C-z ; (comment-region-lisp)'
will put prefix copies of `comment-start' before and
`comment-end''s after the lines in region. To uncomment a
region, use a minus prefix.
`C-z ) (find-unbalanced-lisp)'
will find unbalanced parens in the current buffer. When called
with a prefix it will look in the current region.
`] (close-all-lisp)'
will close all outstanding parens back to the containing form,
or a previous left bracket which will be converted to a left
parens. If there are too many parens, they will be deleted
unless there is text between the last paren and the end of the
defun. If called with a prefix, all open left brackets will be
closed.
File: ilisp.info, Node: Customization, Next: Dialects, Prev: ILISP Commands, Up: Top
ILISP Customization
*******************
Starting a dialect runs the hooks on `comint-mode-hook' and
`ilisp-mode-hook' and then DIALECT`-hooks' specific to dialects in
the
nesting order below.
clisp
allegro
lucid
kcl
akcl
ibcl
cmulisp
scheme
oaklisp
On the very first prompt in the inferior LISP, the hooks on
`ilisp-init-hook' are run. For more information on creating a new
dialect
or variables to set in hooks, see `ilisp.el'.
ILISP Mode Hooks:
`ilisp-site-hook'
Executed when file is loaded
`ilisp-load-hook'
Executed when file is loaded
`ilisp-mode-hook'
Executed when an ilisp buffer is created
`ilisp-init-hook'
Executed after inferior LISP is initialized and the first prompt
is seen.
`DIALECT-hook'
Executed when dialect is set
Variables you might want to set in a hook or dialect:
`ilisp-prefix'
Keys to prefix ilisp key bindings
`ilisp-program'
Program to start for inferior LISP
`ilisp-motd'
String printed on startup with version
`lisp-wait-p'
Set to T for synchronous sends
`lisp-no-popper'
Set to T to have all output in inferior LISP
`lisp-show-status'
Set to nil to stop showing process status
`ilisp-prefix-match'
Set to T if you do not want partial completion
`ilisp-filter-regexp'
Input history filter
`ilisp-filter-length'
Input history minimum length
`ilisp-other-prompt'
Prompt for non- top-level read-eval print loops
File: ilisp.info, Node: Dialects, Next: Concept index, Prev: Customization, Up: Top
Dialects
********
A "dialect" of lisp is a specific implementation. For the parts
of Common Lisp which are well specified, they are usually the same.
For the parts that are not (debugger, top-level loop, etc.), there
is usually the same functionality but different commands.
ILISP provides the means to specify these differences so that the
ILISP commands will use the specific command peculiar to an
implementation, but still offer the same behavior with the same
interface.
* Menu:
* Defining new dialects::
* Writing new commands::
File: ilisp.info, Node: Defining new dialects, Next: Writing new commands, Prev: Dialects, Up: Dialects
Defining new dialects
=====================
To define a new dialect use the macro `defdialect'. For examples,
look at the dialect definitions in `ilisp.el'. There are hooks and
variables for almost anything that you are likely to need to change.
The relationship between dialects is hierarchical with the root
values being defined in `setup-ilisp'. For a new dialect, you only
need to change the variables that are different than in the parent
dialect.
File: ilisp.info, Node: Writing new commands, Prev: Defining new dialects, Up: Dialects
Writing new commands
====================
Basic tools for creating new commands:
`deflocal'
Define a new buffer local variable.
`ilisp-dialect'
List of dialect types. For specific dialect clauses.
`lisp-symbol'
Create a symbol.
`lisp-symbol-name'
Return a symbol's name
`lisp-symbol-delimiter'
Return a symbol's qualification
`lisp-symbol-package'
Return a symbol's package
`lisp-string-to-symbol'
Convert string to symbol
`lisp-symbol-to-string'
Convert symbol to string
`lisp-buffer-symbol'
Convert symbol to string qualified for buffer
`lisp-previous-symbol'
Return previous symbol
`lisp-previous-sexp'
Return previous sexp
`lisp-def-name'
Return name of current definition
`lisp-function-name'
Return previous function symbol
`ilisp-read'
Read an sexp with completion, arglist, etc
`ilisp-read-symbol'
Read a symbol or list with completion
`ilisp-completing-read'
Read from choices or list with completion
Notes:
* Special commands like arglist should use `ilisp-send' to send a
message to the inferior LISP.
* Eval/compile commands should use `eval-region-lisp' or
`compile-region-lisp'.
File: ilisp.info, Node: Concept index, Next: Key index, Prev: Dialects, Up: Top
Concept Index
*************
* Menu:
* *Aborted Commands* buffer: Buffers of ILISP.
* *Aborted Commands* buffer: Interrupts.
* *All-Callers* buffer: Source code commands.
* *All-Callers* buffer: Buffers of ILISP.
* *Changed-Definitions* buffer: Buffers of ILISP.
* *Completions* buffer: Buffers of ILISP.
* *Edit-Definitions* buffer: Source code commands.
* *Edit-Definitions* buffer: Buffers of ILISP.
* *Error Output* buffer: Buffers of ILISP.
* *Errors* buffer: Buffers of ILISP.
* *Last-Changes* buffer: Buffers of ILISP.
* *Last-Changes* buffer: Batch commands.
* *Output* buffer: Buffers of ILISP.
* *ilisp-send* buffer: Buffers of ILISP.
* comint-mode: Command history.
* .el files: Files of ILISP.
* .emacs forms: Autoloading.
* bridge.el: Files of ILISP.
* comint-ipc.el: Files of ILISP.
* comint.el: Files of ILISP.
* completer.el: Files of ILISP.
* completion.el: Files of ILISP.
* epoch-pop.el: Files of ILISP.
* ilisp-bat.el: Files of ILISP.
* ilisp-ext.el: Files of ILISP.
* ilisp-src.el: Files of ILISP.
* ilisp.el: Files of ILISP.
* ilisp.emacs: Files of ILISP.
* ilisp.texi: Files of ILISP.
* popper.el: Files of ILISP.
* symlink.el: Files of ILISP.
* and-go functions: Eval and compile functions.
* Aborting commands: Interrupts.
* Anonymous FTP: FTP directions.
* Apropos help: Documentation functions.
* Arglist lisp: Documentation functions.
* Break loop: Interrupts.
* Buffer package: Package Commands.
* Byte-compiling ILISP files: Files of ILISP.
* Call: Eval and compile functions.
* Change commands: Batch commands.
* Clearing changes: Batch commands.
* Close all parens: Miscellany.
* Close brackets: Miscellany.
* Command history: Command history.
* Comment region: Miscellany.
* Common Lisp manual: Documentation functions.
* Compile last form: Eval and compile functions.
* Compile region: Eval and compile functions.
* Compile/eval commands: Eval and compile functions.
* Compiling ILISP files: Files of ILISP.
* Compiling changes: Batch commands.
* Compiling files: Files and directories.
* Completion: Completion.
* Current directory: Files and directories.
* Currently running command: Eval and compile functions.
* Customization: Customization.
* Default directory: Files and directories.
* Defining new dialects: Defining new dialects.
* Defun: Eval and compile functions.
* Describing bindings: Eval and compile functions.
* Describing lisp objects: Documentation functions.
* Dialect startup: Customization.
* Dialects: Dialects.
* Dialects supported: Starting up.
* Directories and files: Files and directories.
* Displaying commands: Eval and compile functions.
* Documentation Functions: Documentation functions.
* Errors: Interrupts.
* Eval region: Eval and compile functions.
* Eval'ing changes: Batch commands.
* Eval/compile commands: Eval and compile functions.
* Expanding macro forms: Macroexpansion.
* FTP site: FTP directions.
* File changes: Batch commands.
* Filename completion: Completion.
* Files and directories: Files and directories.
* Files of ILISP: Files of ILISP.
* Find callers: Source code commands.
* Find file: Files and directories.
* Find unbalanced parens: Miscellany.
* Finding source: Source code commands.
* First prompt: Customization.
* Franz manual: Documentation functions.
* Getting ILISP: FTP directions.
* Group changes: Batch commands.
* Hooks: Customization.
* How to get: FTP directions.
* ILISP Mode Hooks: Customization.
* ILISP buffers: Buffers of ILISP.
* In-package form: Package Commands.
* Indentation: Miscellany.
* Input search: Command history.
* Inserting calls: Eval and compile functions.
* Inserting results: Eval and compile functions.
* Installation: Installation.
* Interactive keyboard mode: Keyboard modes.
* Internal ILISP functions: Writing new commands.
* Interrupting commands: Interrupts.
* Last command: Command history.
* Lisp find file: Files and directories.
* List callers: Source code commands.
* Listing bindings: Eval and compile functions.
* Listing changes: Batch commands.
* Loading files: Files and directories.
* Macroexpansion: Macroexpansion.
* Marking changes: Batch commands.
* Minibuffer completion: Documentation functions.
* Modeline status: Eval and compile functions.
* Negative prefix: Documentation functions.
* Next definition: Source code commands.
* Next input: Command history.
* Package commands: Package Commands.
* Parenthesis balancing: Miscellany.
* Partial completion: Completion.
* Pop in break loop: Interrupts.
* Popper buffers: Popper buffers.
* Previous commands: Command history.
* Previous definition: Source code commands.
* Previous lisp buffer: Switching buffers.
* Raw keyboard mode: Keyboard modes.
* Region commands: Eval and compile functions.
* Reindent lisp: Miscellany.
* Replace lisp: Source code commands.
* Resetting lisp: Interrupts.
* Rigid indentation: Miscellany.
* Running lisp: Starting up.
* Search input: Command history.
* Sending input to lisp: Eval and compile functions.
* Set buffer package: Package Commands.
* Set default directory: Files and directories.
* Show current package: Package Commands.
* Similar input: Command history.
* Source Code Commands: Source code commands.
* Source modes: Source code commands.
* Starting up lisp: Starting up.
* Status light: Eval and compile functions.
* Supported dialects: Starting up.
* Switching buffers: Switching buffers.
* Symbolic link expansion: Files and directories.
* TMC completion: Completion.
* Top-level, return to: Interrupts.
* Tracing defuns: Tracing functions.
* Turning popper off: Popper buffers.
* Uncomment region: Miscellany.
* Untracing defuns: Tracing functions.
* autoload definitions: Autoloading.
* buffers of ILISP: Buffers of ILISP.
* bury output window: Popper buffers.
* defining autoloads: Autoloading.
* epoch popper: Popper buffers.
* features: Introduction.
* grow output window: Popper buffers.
* scrolling output: Popper buffers.
File: ilisp.info, Node: Key index, Next: Command index, Prev: Concept index, Up: Top
Key Index
*********
* Menu:
* TAB: Miscellany.
* C-z !: Files and directories.
* C-z #: Keyboard modes.
* C-z ): Miscellany.
* C-z * 0: Batch commands.
* C-z * c: Batch commands.
* C-z * e: Batch commands.
* C-z * l: Batch commands.
* C-z ;: Miscellany.
* C-z A: Documentation functions.
* C-z C-c: Eval and compile functions.
* C-z C-e: Eval and compile functions.
* C-z C-n: Eval and compile functions.
* C-z C-r: Eval and compile functions.
* C-z C-w: Eval and compile functions.
* C-z D: Documentation functions.
* C-z I: Documentation functions.
* C-z M: Macroexpansion.
* C-z P: Package Commands.
* C-z SPC: Batch commands.
* C-z ^: Source code commands.
* C-z a: Documentation functions.
* C-z b: Switching buffers.
* C-z c: Eval and compile functions.
* C-z d: Documentation functions.
* C-z e: Eval and compile functions.
* C-z g: Eval and compile functions.
* C-z g: Interrupts.
* C-z i: Documentation functions.
* C-z i: Documentation functions.
* C-z k: Files and directories.
* C-z l: Files and directories.
* C-z m: Macroexpansion.
* C-z n: Eval and compile functions.
* C-z p: Package Commands.
* C-z prefix: Eval and compile functions.
* C-z r: Eval and compile functions.
* C-z s: Eval and compile functions.
* C-z t: Tracing functions.
* C-z w: Eval and compile functions.
* C-z z: Interrupts.
* M-TAB: Documentation functions.
* TAB: Documentation functions.
* C-]: Eval and compile functions.
* C-c R: Command history.
* C-d: Interrupts.
* C-g: Interrupts.
* C-x C-f: Files and directories.
* C-x o: Popper buffers.
* C-z 1: Popper buffers.
* C-z G: Popper buffers.
* C-z v: Popper buffers.
* LFD: Eval and compile functions.
* M-": Source code commands.
* M-,: Source code commands.
* M-.: Source code commands.
* M-?: Source code commands.
* M-C-l: Switching buffers.
* M-C-q: Miscellany.
* M-C-x: Eval and compile functions.
* M-N: Command history.
* M-P: Command history.
* M-RET: Completion.
* M-TAB: Completion.
* M-`: Source code commands.
* M-n: Command history.
* M-p: Command history.
* M-q: Miscellany.
* M-s: Command history.
* M-x io-bridge-ilisp: Keyboard modes.
* M-x lisp-directory: Source code commands.
* M-x set-buffer-package-lisp: Package Commands.
* M-x who-calls-lisp: Source code commands.
* RET: Eval and compile functions.
* ]: Miscellany.
File: ilisp.info, Node: Command index, Next: Variable index, Prev: Key index, Up: Top
Command Index
*************
Commands available via `M-x' prefix.
* Menu:
* abort-commands-lisp: Interrupts.
* abort-commands-lisp: Eval and compile functions.
* akcl: Starting up.
* allegro: Starting up.
* arglist-lisp: Documentation functions.
* clear-changes-lisp: Batch commands.
* clisp: Starting up.
* close-all-lisp: Miscellany.
* close-and-send-lisp: Eval and compile functions.
* cmulisp: Starting up.
* comint-msearch-input: Command history.
* comint-msearch-input-matching: Command history.
* comint-next-input: Command history.
* comint-previous-input: Command history.
* comint-previous-similar-input: Command history.
* comint-psearch-input: Command history.
* comment-region-lisp: Miscellany.
* compile-changes-lisp: Batch commands.
* compile-defun-and-go-lisp: Eval and compile functions.
* compile-defun-lisp: Eval and compile functions.
* compile-defun-lisp-and-go: Eval and compile functions.
* compile-file-lisp: Files and directories.
* compile-region-and-go-lisp: Eval and compile functions.
* compile-region-lisp: Eval and compile functions.
* complete: Completion.
* complete-lisp: Completion.
* default-directory-lisp: Files and directories.
* defdialect: Defining new dialects.
* delete-char-or-pop-ilisp: Interrupts.
* describe-lisp: Documentation functions.
* documentation-lisp: Documentation functions.
* edit-callers-lisp: Source code commands.
* edit-callers-lisp: Source code commands.
* edit-definitions-lisp: Source code commands.
* eval-changes-lisp: Batch commands.
* eval-defun-and-go-lisp: Eval and compile functions.
* eval-defun-and-go-lisp: Eval and compile functions.
* eval-defun-lisp: Eval and compile functions.
* eval-next-sexp-and-go-lisp: Eval and compile functions.
* eval-next-sexp-lisp: Eval and compile functions.
* eval-region-and-go-lisp: Eval and compile functions.
* eval-region-lisp: Eval and compile functions.
* fi:clman: Documentation functions.
* fi:clman-apropos: Documentation functions.
* find-file-lisp: Files and directories.
* find-unbalanced-lisp: Miscellany.
* ibcl: Starting up.
* indent-line-ilisp: Miscellany.
* indent-sexp-ilisp: Miscellany.
* inspect-lisp: Documentation functions.
* interrupt-subjob-ilisp: Interrupts.
* io-bridge-ilisp: Keyboard modes.
* kcl: Starting up.
* lisp-directory: Source code commands.
* list-changes-lisp: Batch commands.
* load-file-lisp: Files and directories.
* lucid: Starting up.
* macroexpand-1-lisp: Macroexpansion.
* macroexpand-lisp: Macroexpansion.
* mark-change-lisp: Batch commands.
* newline-and-indent-lisp: Eval and compile functions.
* next-caller-lisp: Source code commands.
* next-definition-lisp: Source code commands.
* next-definition-lisp: Source code commands.
* oaklisp: Starting up.
* package-lisp: Package Commands.
* panic-lisp: Interrupts.
* popper-bury-output: Popper buffers.
* popper-grow-output: Popper buffers.
* popper-other-window: Popper buffers.
* popper-scroll-output: Popper buffers.
* previous-buffer-lisp: Switching buffers.
* raw-keys-ilisp: Keyboard modes.
* reindent-lisp: Miscellany.
* replace-lisp: Source code commands.
* reset-ilisp: Interrupts.
* return-ilisp: Eval and compile functions.
* run-ilisp: Starting up.
* scheme: Starting up.
* search-lisp: Source code commands.
* set-buffer-package-lisp: Package Commands.
* set-package-lisp: Package Commands.
* setup-ilisp: Defining new dialects.
* status-lisp: Eval and compile functions.
* switch-to-lisp: Switching buffers.
* trace-defun-lisp: Tracing functions.
* who-calls-lisp: Source code commands.
File: ilisp.info, Node: Variable index, Next: Function index, Prev: Command index, Up: Top
Variable Index
**************
Variables and hooks of ILISP.
* Menu:
* *record-source-files*: Source code commands.
* DIALECT-hook: Customization.
* auto-mode-alist: Source code commands.
* comint-always-scroll: Popper buffers.
* comint-mode-hook: Customization.
* default-directory: Files and directories.
* ilisp-defvar-regexp: Eval and compile functions.
* ilisp-filter-length: Command history.
* ilisp-filter-length: Customization.
* ilisp-filter-regexp: Customization.
* ilisp-filter-regexp: Command history.
* ilisp-init-binary-command: Files of ILISP.
* ilisp-init-binary-extension: Files of ILISP.
* ilisp-init-hook: Customization.
* ilisp-init-hook: Customization.
* ilisp-load-hook: Customization.
* ilisp-load-inits: Files of ILISP.
* ilisp-locator: Source code commands.
* ilisp-mode-hook: Customization.
* ilisp-mode-hook: Customization.
* ilisp-motd: Customization.
* ilisp-other-prompt: Customization.
* ilisp-package-regexp: Package Commands.
* ilisp-prefix: Customization.
* ilisp-prefix: Eval and compile functions.
* ilisp-prefix-match: Completion.
* ilisp-prefix-match: Customization.
* ilisp-program: Customization.
* ilisp-program: Files of ILISP.
* ilisp-raw-echo: Keyboard modes.
* ilisp-site-hook: Files of ILISP.
* ilisp-site-hook: Customization.
* lisp-edit-files: Source code commands.
* lisp-no-popper: Popper buffers.
* lisp-no-popper: Customization.
* lisp-show-status: Eval and compile functions.
* lisp-show-status: Customization.
* lisp-source-modes: Source code commands.
* lisp-wait-p: Customization.
* lisp-wait-p: Interrupts.
* lisp-wait-p: Eval and compile functions.
* pop-up-windows: Switching buffers.
* popper-buffers-to-skip: Popper buffers.
* popper-pop-buffers: Popper buffers.
* popper-pop-buffers: Popper buffers.
* popper-screen-properties: Popper buffers.
File: ilisp.info, Node: Function index, Prev: Variable index, Up: Top
Function Index
**************
Internal functions of ILISP which can be used to write new commands.
* Menu:
* compile-region-lisp: Writing new commands.
* deflocal: Writing new commands.
* eval-region-lisp: Writing new commands.
* ilisp-compile-inits: Files of ILISP.
* ilisp-completing-read: Writing new commands.
* ilisp-dialect: Writing new commands.
* ilisp-package-command: Package Commands.
* ilisp-read: Writing new commands.
* ilisp-read-symbol: Writing new commands.
* ilisp-send: Writing new commands.
* lisp-buffer-symbol: Writing new commands.
* lisp-def-name: Writing new commands.
* lisp-function-name: Writing new commands.
* lisp-previous-sexp: Writing new commands.
* lisp-previous-symbol: Writing new commands.
* lisp-string-to-symbol: Writing new commands.
* lisp-symbol: Writing new commands.
* lisp-symbol-delimiter: Writing new commands.
* lisp-symbol-name: Writing new commands.
* lisp-symbol-package: Writing new commands.
* lisp-symbol-to-string: Writing new commands.
Tag Table:
Node: Top883
Node: Distribution1854
Node: FTP directions2882
Node: Acknowledgements3523
Node: Introduction4467
Node: Installation6151
Node: Files of ILISP6663
Node: Autoloading9527
Node: Starting up12856
Node: Buffers of ILISP14087
Node: Popper buffers15573
Node: Switching buffers17597
Node: ILISP Commands18238
Node: Eval and compile functions18997
Node: Documentation functions23300
Node: Macroexpansion25509
Node: Tracing functions25951
Node: Package Commands26311
Node: Source code commands27362
Node: Batch commands31310
Node: Files and directories32612
Node: Keyboard modes33928
Node: Interrupts35092
Node: Command history36965
Node: Completion38133
Node: Miscellany39948
Node: Customization41198
Node: Dialects42817
Node: Defining new dialects43458
Node: Writing new commands44030
Node: Concept index45338
Node: Key index54453
Node: Command index59110
Node: Variable index64451
Node: Function index67263
End Tag Table